package main

import (
	"flag"
	"runtime"

	"gofw-im/lib/logger"
	"gofw-im/lib/perf"
)

func main() {
	flag.Parse()

	if err := InitConfig(); err != nil {
		logger.Error.Printf("Fatal error config file: %s", err)
		return
	}
	// 设置cpu 核数
	runtime.GOMAXPROCS(conf.Base.MaxProc)
	// 加入性能监控
	perf.Init(conf.Base.PprofBind)

	// rpc client
	if err := InitLogicRpc(); err != nil {
		logger.Error.Printf("InitLogicRpc error error: %s", err)
		return
	}

	// init grpc
	if err := InitGrpc(); err != nil {
		logger.Error.Printf("InitGrpc error error: %s", err)
		return
	}

	// new server
	if err := InitDefaultServer(); err != nil {
		logger.Error.Printf("Fatal error server: %s", err)
		return
	}

	if err := InitWebsocket(); err != nil {
		logger.Error.Printf("InitWebsocket error error: %s", err)
		return
	}
}
